RESTART:;ltime=time(e);addb=-1;switch=1;pb="00000000"x;getuser 23;myport=result;getuser 1100468;ttyheight=result;getuser 1200032;timeenter=result/10;getuser 17;maint=result;if ~(maint=0) then maint=1;getuser (2424286+(4*myport));pnt=result;temp=import(offset(pb,pnt+661),1);if left(c2b(temp),1)='1' then confctrl=1;else confctrl=0;if ttyheight-7<=maxport-minport then do;tr 'Can''t monitor that many ports (try increasing your screen height)';maxport=(ttyheight-7)+minport;tr 'Truncating maxport to 'maxport'.';end;call ansiclear;if ran=1 then do;tr 'cfz4BBS Monitor by Josef Faulkner v'ver' 'date'q1';if confctrl=1 then tr 'You have conference control, no hidden ports.';query 'c7First Port to Monitor (cfQc7=Quit) [(cf'minport'c7-cf'maxport'c7) cf'minport'c7=default]: ';ans=result;if upper(ans)='Q'|ans='###PANIC' then do;call cleanup;exit;end;if ((ans>=minport)&(ans<=maxport))|((maint=1)&((ans>=0)&(ans<=99))) then minport=ans;query 'c7Last Port to monitor (cfQc7=Quit) [(cf'minport'c7-cf'maxport'c7) cf'maxport'c7=default]: ';ans=result;if upper(ans)='Q'|ans='###PANIC' then do;call cleanup;exit;end;if ((ans<=maxport)&(ans>=minport))|((maint=1)&((ans>=minport)&(ans<=99))) then maxport=ans;if ttyheight-7<=maxport-minport then do;tr 'Can''t monitor that many ports (try increasing your screen height)';maxport=(ttyheight-7)+minport;tr 'Truncating maxport to 'maxport'.';end;end;addy=2-minport;ss '';ran=1;firstrun=1
MAIN:;bufferflush;ss 'f1'titlebar;if rgd=1 then ss helpline;else ss unrbar;call scanboard;do port=minport to maxport;idle.port=0;getportid port;pid.port=result;end;call resetboard;bufferflush;do forever;call checkpanic;getuser 2307050;bbsname=c2b(result);if bbsname~=rname then rgd=0;if rgd=0 then do;etime=time(e);if etime-ltime>regsw then do;if switch=0 then do;switch=1;sendstring unrbar;end;else do;switch=0;sendstring helpline;end;ltime=time(e);end;end;if result=0 then exit;;call pause(15);call scanboard;do port=minport to maxport;call pause(1);getportid port;pid.port=result;if pid.port>-1 then do;idle.port=0;call scanport;call compvars;end;else do;getwhere port;where.port.1=result;if ~(where.port.2=where.port.1) then do;where.port.2=where.port.1;ss ''port+1+addy';24Hc6'left(where.port.2,15,' ');end;if idle.port=0 then do;call resetport;getwhere port;ss ''port+1+addy'Hc7'port//10' c6'result'';idle.port=1;end;end;end;call compboard;call checkquit;end;call cleanup;exit
CHECKQUIT:;checkio;ans=upper(result);if ans then do;getuser 2307050;bbsname=c2b(result);if bbsname~=rname then rgd=0;getchar;ans=result;if ans='C' then do;ss ''maxport+7'H';call doshell;call redrawscreen;end;else if ans='V' then do;ss ''maxport+5+addy'HL';query 'Hz2cf>21}Press Enter To Continue...(S=SendOLM)q1'maxport+4+addy'H';cmd=result;if cmd='###PANIC' then do;call cleanup;exit;end;if upper(cmd)='S' then do;ss 'L';call sendolm;end;ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;end;else if ans='H' then do;changewhere 'BBSMon Help';call drawhelp;changewhere 'BBS Monitor';end;else if ans='A' then do;ss ''maxport+7'H';tr 'BBSMonitor v'ver' by Josef Faulkner written on 'date' for C-Net 3.05';if (rgd=0) then do;tr 'c9z0r1'b2c('010101010110111001110010011001010110011101101001011100110111010001100101011100100110010101100100001000000101011001100101011100100111001101101001011011110110111000100001')'q1'b2c('00100000010100000110110001100101011000010111001101100101001000000110000101110011011010110010000001111001011011110111010101110010001000000101001101111001011100110110111101110000001000000111010001101111001000000101001001100101011001110110100101110011011101000110010101110010001000000011101000101001');tr 'No part of this program has been disabled. Email panther@gate.net ';tr 'for questions or more information.';end;else do;tr ''b2c('0101001001100101011001110110100101110011011101000110010101110010011001010110010000100000010101100110010101110010011100110110100101101111011011100010000001100110011011110111001000100000')||b2c(rname)'!';tr 'I appreciate your BBS''s participation in the registration for this program.';tr 'For questions/comments email panther@gate.net ';end;end;else if ans='S' then call sendolm;else if ans='R' then do;do port=minport to maxport;call resetport;end;call resetboard;signal restart;end;else if ans=' ' then do;changewhere 'Exiting BBSmon';call ansiclear;bufferflush;call cleanup;exit;end;else if ans=CtrlL then do;sendstring 'f1';sendstring titlebar;sendstring helpline;do port=minport to maxport;call redrawport;end;call redrawboard;end;else if ans='!'|ans='Q'|ans='###PANIC' then do;ss 'f1';bufferflush;setobject mon;call cleanup;exit;end;if ans='' then do;getchar;getchar;ans=result;if ans='B' then ans='+';else if ans='A' then ans='-';else if ans='C' then ans=']';else if ans='D' then ans='[';end;if ans='='|ans='+' then do;if maxport<99 then do;minport=minport+1;maxport=maxport+1;ss 'HM'maxport-minport+3'HL';port=maxport;addy=addy-1;call scanport;call copyport;getportid port;pid.port=result;call redrawport;end;else ss beep;end;else if ans='-' then do;if minport>0 then do;minport=minport-1;maxport=maxport-1;ss ''maxport-minport+3'HMHL';port=minport;addy=addy+1;call scanport;call copyport;getportid port;pid.port=result;call redrawport;end;else ss beep;end;else if ans='[' then do;if maxport~=minport then do;ss ''maxport-minport+3'HM';maxport=maxport-1;end;end;else if ans=']' then do;if ttyheight-7>=maxport-minport+1 then do;ss ''maxport-minport+4'HL';maxport=maxport+1;port=maxport;call scanport;call copyport;getportid port;pid.port=result;call redrawport;end;end;bufferflush;end;return
COMPVARS:;if port>maxport then return;line=port+1+addy;if ~(handle.port.2=handle.port.1) then do;handle.port.2=handle.port.1;portnumber=port//10;ss ''line'H'textset||portnumber;ss ''line';3H';if gender.port=0 then ss 'c9';else if gender.port=1 then ss'cc';ss left(handle.port.2,20,' ');end;if ~(olmwait.port.2=olmwait.port.1) then do;olmwait.port.2=olmwait.port.1;ss ''line';2Hcf'olmwait.port.2;end;if ~(where.port.2=where.port.1) then do;where.port.2=where.port.1;ss ''line';24Hce'left(where.port.2,15,' ');end;if ~(hide.port.2=hide.port.1) then do;hide.port.2=hide.port.1;ss ''line';40H'hide.port.2;end;if ~(hideall.port.2=hideall.port.1) then do;hideall.port.2=hideall.port.1;ss ''line';41H'hideall.port.2;end;if ~(myhide.port.2=myhide.port.1) then do;myhide.port.2=myhide.port.1;ss ''line';42H'myhide.port.2;end;if ~(muff.port.2=muff.port.1) then do;muff.port.2=muff.port.1;ss ''line';44H'muff.port.2;end;if ~(muffall.port.2=muffall.port.1) then do;muffall.port.2=muffall.port.1;ss ''line';45H'muffall.port.2;end;if ~(mymuff.port.2=mymuff.port.1) then do;mymuff.port.2=mymuff.port.1;ss ''line';46H'mymuff.port.2;end;if ~(chat.port.2=chat.port.1) then do;chat.port.2=chat.port.1;ss ''line';48H'chat.port.2;end;if ~(mychat.port.2=mychat.port.1) then do;mychat.port.2=mychat.port.1;ss ''line';49H'mychat.port.2;end;if ~(timeon.port.2=timeon.port.1) then do;timeon.port.2=timeon.port.1;ss ''line';51H ';ss ''line';51Hca'timeon.port.2;end;if ~(timeidle.port.2=timeidle.port.1) then do;timeidle.port.2=timeidle.port.1;ss ''line';57H ';ss ''line';57Hca';if timeidle.port.2>5 then ss 'cb';if timeidle.port.2>10 then ss 'c9';ss timeidle.port.2;end;if ~(timeleft.port.2=timeleft.port.1) then do;timeleft.port.2=timeleft.port.1;ss ''line';62H ';ss ''line';62H';if timeleft.port.2<10 then ss 'c9';else if timeleft.port.2<30 then ss'cb';else ss'ca';if timeleft.port.2=999 then ss 'ceUNLIM';else ss timeleft.port.2;end;if ~(logoncps.port.2=logoncps.port.1) then do;logoncps.port.2=logoncps.port.1;ss ''line';68H ';ss ''line';68H';if logoncps.port.2<2400 then ss 'c9';else if logoncps.port.2<9600 then ss 'cb';else if logoncps.port.2>14400 then ss 'ce';else ss 'ca';ss logoncps.port.2;end;if ~(lastcmd.port.2=lastcmd.port.1) then do;lastcmd.port.2=lastcmd.port.1;ss ''line';74H ';ss ''line';74Hcb'lastcmd.port.2;end;return
COMPBOARD:;line=maxport+3+addy+addb;if ~(totalpfiles.2=totalpfiles.1) then do;totalpfiles.2=totalpfiles.1;ss ''line'Hc7z4TotalPfiles:z0 <5'totalpfiles.2;end;if ~(totalcalls.2=totalcalls.1) then do;totalcalls.2=totalcalls.1;ss ''line';20Hc7z4Total Calls:z0 <5'totalcalls.2;end;if ~(newusers.2=newusers.1) then do;newusers.2=newusers.1;ss ''line';60Hc7z4New Users :z0 <5'newusers.2;end;line=maxport+4+addy+addb;if ~(mytimeleft.2=mytimeleft.1) then do;mytimeleft.2=mytimeleft.1;ss ''line'Hc7z4Time Left :z0 <5';if mytimeleft.2<10 then ss 'c9';else if mytimeleft.2<30 then ss 'cb';else ss 'ca';if mytimeleft.2=999 then ss 'ceUNLIM';else ss mytimeleft.2;end;if mytimeleft.2<5 then ss 'b1f0z1cfWARNING! Out of Time! (Only 'mytimeleft.2' minutes remaining!) Q=Quit';if ~(mytimeonline.2=mytimeonline.1) then do;mytimeonline.2=mytimeonline.1;ss ''line';20Hc7z4Time Online:z0 <5'mytimeonline.2;end;if ~(mytimetoday.2=mytimetoday.1) then do;mytimetoday.2=mytimetoday.1;ss ''line';40Hc7z4Time Today :z0 <5'mytimetoday.2;end;if ~(myinprog.2=myinprog.1) then do;myinprog.2=myinprog.1;ss ''line';60Hc7z4Time In Mon:z0 'left(myinprog.2,5,' ');end;line=maxport+5+addy+addb;if ~(curtime.2=curtime.1) then do;curtime.2=curtime.1;ss ''line'Hc7z4CurrentTime:z0 'curtime.2;end;if ~(lastuser.2=lastuser.1) then do;lastuser.2=lastuser.1;ss ''maxport+5+addy+addb';40Hc7z4Last Logoff:z0 'lastuser.2;end;if ~(myolmwait.2=myolmwait.1) then do;myolmwait.2=myolmwait.1;if myolmwait.2='caYes' then ss 'b1';ss ''maxport+3+addy+addb';40Hc7z4Olm Waiting:q1 'myolmwait.2;end;return
SCANPORT:;getuser (2424286+(4*port));pnt=result;da=import(offset(pb,pnt+72),20);temphandle=strip(da,,"00"x);da=import(offset(pb,pnt+28),2);timeleft.port.1=(c2d(da,2))/10;da=import(offset(pb,pnt+30),2);timeidle.port.1=(c2d(da,2))/10;if timeidle.port.1=0.1 then timeidle.port.1=0;da=import(offset(pb,pnt+461),1);gender.port=c2d(da,1);da=import(offset(pb,pnt+32),2);timeon.port.1=(c2d(da,2))/10;da=import(offset(pb,pnt+1744),1);hideall.port.1=c2d(da);if hideall.port.1=1 then hideall.port.1='c9*';else hideall.port.1='cd-';da=import(offset(pb,pnt+1745),1);muffall.port.1=c2d(da);if muffall.port.1=1 then muffall.port.1='c9*';else muffall.port.1='cd-';da=import(offset(pb,pnt+1743),1);olmwait.port.1=c2d(da);if olmwait.port.1=1 then olmwait.port.1='cf*';else olmwait.port.1='c7-';da=import(offset(pb,pnt+7358),5);lastcmd.port.1=strip(da,,"00"x);da=import(offset(pb,pnt+452),1);textset=c2d(da);if textset=0 then textset='ce';else textset='cb';da=import(offset(pb,pnt+542),2);logoncps.port.1=(c2d(da,2))*10;getwhere port;where.port.1=result;da=c2b(import(offset(pb,pnt+(myport+1630)),1));hide.port.1=BitTST(da,0);if right(da,1)='1' then do;if confctrl=1 then do;handle.port.1=temphandle;hide.port.1='cc+';end;else do;hide.port.1='c9*';handle.port.1='caHidden';end;end;else do;hide.port.1='cd-';handle.port.1=temphandle;end;if left(right(da,2),1)='1' then do;if confctrl=1 then muff.port.1='cc+';else muff.port.1='c9*';end;else muff.port.1='cd-';if left(right(da,4),1)='1' then chat.port.1='c9*';else chat.port.1='cd-';getuser 1101630+port;da=c2b(result);if right(da,1)='1' then myhide.port.1='c9*';else myhide.port.1='cd-';if left(right(da,2),1)='1' then mymuff.port.1='c9*';else mymuff.port.1='cd-';if left(right(da,4),1)='1' then mychat.port.1='c9*';else mychat.port.1='cd-';return
SCANBOARD:;getuser 1101743;myolmwait=result;getuser 2300056;lastuser.1=left(result,20,' ');getuser 2401116;totalpfiles.1=result;getuser 2400100;totalcalls.1=result;getuser 2400952;newusers.1=result;getuser 1500000;curtime.1=result;getuser 1200028;mytimeleft.1=result/10;getuser 1200032;mytimeonline.1=result/10;getuser 1200538;mytimetoday.1=(result+((mytimeonline.1)*10))/10;myinprog.1=mytimeonline.1-timeenter;getuser 1101743;myolmwait.1=result;if myolmwait.1=0 then myolmwait.1='c9No ';else do;myolmwait.1='caYes';getuser 1200032;rndnum=result;if rndnum//10=0&bell=0 then do;ss 'b1';bell=1;end;end;getuser 1200032;if result//10=1 then bell=0;return
REDRAWPORT:;if (port=minport)|(port=maxport) then do;ss'Hcfz4'minport%10'q179H';minport.bk=minport;end;if pid.port>-1 then do;line=port+1+addy;portnumber=port//10;ss ''line'H'textset||portnumber;ss ''line';3H';if gender.port=0 then ss 'c9';else if gender.port=1 then ss'cc';ss left(handle.port.2,20,' ');ss ''line';2Hcf'olmwait.port.2;ss ''line';24Hce'left(where.port.2,15,' ');ss ''line';40H'hide.port.2;ss ''line';41H'hideall.port.2;ss ''line';42H'myhide.port.2;ss ''line';44H'muff.port.2;ss ''line';45H'muffall.port.2;ss ''line';46H'mymuff.port.2;ss ''line';48H'chat.port.2;ss ''line';49H'mychat.port.2;ss ''line';51H ';ss ''line';51Hca'timeon.port.2;ss ''line';57H ';ss ''line';57Hca';if timeidle.port.2>3 then ss 'cb';else if timeidle.port.2>5 then ss 'c9';else ss 'ca';ss timeidle.port.2;ss ''line';62H ';ss ''line';62Hca';if timeleft.port.2<10 then ss 'c9';else if timeleft.port.2<30 then ss'cb';else ss'ca';if timeleft.port.2=999 then ss 'ceUNLIM';else ss timeleft.port.2;ss ''line';68H ';ss ''line';68H';if logoncps.port.2<2400 then ss 'c9';else if logoncps.port.2<9600 then ss 'cb';else if logoncps.port.2>14400 then ss 'ce';else ss 'ca';ss logoncps.port.2;ss ''line';74H ';ss ''line';74Hcb'lastcmd.port.2;end;else do;getwhere port;ss ''port+1+addy'Hc7'port//10' c6'result'';end;return
REDRAWBOARD:;line=maxport+3+addy+addb;ss ''line'Hc7z4TotalPfiles:z0 'totalpfiles.2;ss ''line';20Hc7z4Total Calls:z0 'totalcalls.2;ss ''line';40Hc7z4Olm Waiting:q1 'myolmwait.2;ss ''line';60Hc7z4New Users :z0 'newusers.2;line=maxport+4+addy+addb;ss ''line'Hc7z4Time Left :z0 ';if mytimeleft.2<10 then ss 'c9';else if mytimeleft.2<30 then ss 'cb';else ss 'ca';if mytimeleft.2=999 then ss 'ceUNLIM';else ss mytimeleft.2;if mytimeleft<5 then ss 'b1f0z1cfWARNING! Out of Time! (Only 'mytimeleft.2' minutes remaining!) Q=Quit';ss ''line';20Hc7z4Time Online:z0 'mytimeonline.2;ss ''line';40Hc7z4Time Today :z0 'mytimetoday.2;ss ''line';60Hc7z4Time In Mon:z0 'myinprog.2;line=maxport+5+addy+addb;ss ''line'Hc7z4CurrentTime:z0 'curtime.2;ss ''line';40Hc7z4Last Logoff:z0 'lastuser.2;return
REDRAWSCREEN:;ss 'z4cf>26}Press Enter To Continue...q1';getchar;if result='###PANIC' then do;call cleanup;exit;end;ss 'q1H';call ansiclear;ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;return
HELPTEXT:;tr 'f1cfz4 Help File for BBS Monitor by [>Panther<] v'ver' 'date'q1';tr 'c7("cf*c7"=Yes, "cf-c7"=No for those fields) All time units are minutes';tr 'c7Scroll through the list with the up and down arrows or cf+c7 and cf-c7.';tr 'c7Expand or shrink view with left and right arrow keys or cf[c7 and cf]c7.';tr 'cfz5Title Bar:q1c7 This is the information from the ports being monitored.';tr 'cfz4# :z0c7 Port Number that user has logged onto.';tr 'cfz4* :z0c7 If the user has an OLM waiting to be read or not.';tr 'cfz4Handle :z0c7 The user''s handle! c9Red=Femalec7, ccBlue=Male';tr 'cfz4Where :z0c7 The user''s current location on the BBS.';tr 'cfz4H :z0c7 The user is hiding from you specifically.';tr 'cfz4* :z0c7 The user is hiding from everyone on the BBS.';tr 'cfz4U :z0c7 You are hiding from this user.';tr 'cfz4M :z0c7 The user is muffling you specifically.';tr 'cfz4* :z0c7 The user is muffling everyone on the BBS.';tr 'cfz4U :z0c7 You are muffling this user.';tr 'cfz4C :z0c7 This user has sent you a chat request.';tr 'cfz4U :z0c7 You have sent this user a chat request.';tr 'cfz4Logon :z0c7 How long the user has been online.';tr 'cfz4Idle :z0c7 Time since the user''s last key press (lurk time).';tr 'cfz4Left :z0c7 How much time until the user must logoff (ceUNLIMc7=Unlimited).';tr 'cfz4Baud :z0c7 The user''s connection speed.';tr 'cfz4Cmd :z0c7 The first 5 characters of the last BBS command the user made.';ss 'More [Yes]? ?1';getuser 70;if result=1 then do;tr 'cfz5Stat Board:q1c7 These are global BBS stats or your personal stats.';tr 'cfz4TotalPfiles:z0c7 The number of external programs running on the BBS right now.';tr 'cfz4Total Calls:z0c7 Total number of calls to the BBS.';tr 'cfz4New Users :z0c7 The number of new users.';tr 'cfz4Time Left :z0c7 Amount of time you have left online.';tr 'cfz4Time Online:z0c7 Amount of time you have been online.';tr 'cfz4Time Today :z0c7 Amount of time you have been online today.';tr 'cfz4Time In Mon:z0c7 Amount of time you have been in this program.';tr 'cfz4CurrentTime:z0c7 The current time (Expanded Format).';tr 'cfz4Last User..:z0c7 The handle of the last user that logged off this BBS.';tr 'cfz4Olm Waiting:z0c7 Indicates whether or not you have an OLM waiting (V=View It).';end;return
DRAWHELP:;ss 'q1cf';ss ''maxport+2+addy'H';ss 'ce'maxport+2+addy';77H\!1<1|!1<1|!1<1|!1<1|!1<1|!1<13}Last Command''';ss 'ca'maxport+2+addy';70H`-----.!1<1|!1<1|!1<1|!1<1|!1<12}Baud Rate--''';ss 'ce'maxport+2+addy';64H|!1<1`----------.!1<1|!1<1|!1<11}Time Left-''';ss 'ca'maxport+2+addy';58H|!1<1|!1<1`---------------.!1<10}Time Idle''';ss 'ce'maxport+2+addy';52H|!1<1|!1<1|!1<1`Time Online';ss 'ca'maxport+2+addy';49H|!1<1|!1<1|!1<1|!1<1`You ChatReq''d';ss 'ce'maxport+2+addy';48H|!1<1|!1<1|!1<1|!1<1|!1<1'ChatReq'd You';ss 'ca'maxport+2+addy';46H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1`You Muffling';ss 'ce'maxport+2+addy';45H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1`Muffling All';ss 'ca'maxport+2+addy';44H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<1|!1<14} Muffling You''';ss 'ce'maxport+2+addy';42H|!1<1|!1<1|!1<1|!1<1|!1<1|!1<11}You Hiding''';ss 'ca'maxport+2+addy';41H|!1<1|!1<1|!1<1|!1<1|!1<11}Hiding All''';ss 'ce'maxport+2+addy';40H|!1<1|!1<1|!1<1|!1<11}Hiding You''';ss 'ca'maxport+2+addy';24H|!1<1`-Where At';ss 'ce'maxport+2+addy';3H|!1<1`-Handle';ss 'ca'maxport+2+addy';2H|!1<1|!1<1`-Olm Waiting (*=Yes,-=No)';ss 'ce'maxport+2+addy'H|!1<1|!1<1|!1<1`-Port Number';ss 'q1cfHWould you like more help [No]? ?0';getuser 70;help=result;if help=1 then do;call helptext;call redrawscreen;end;else do;ss 'z4cf>26}Press Enter To Continue...q1';getchar;if result='###PANIC' then do;call cleanup;exit;end;ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;end;return
ANSICLEAR:;ss '';return
DOSHELL:;cmdmode=1;changewhere 'BBSMon Shell';do while cmdmode=1;query 'n1cfz4BBS Command (Q=Quit):q1 ';cmd=result;if cmd='###PANIC' then do;call cleanup;exit;end;if upper(cmd)='Q'|upper(cmd)='QUIT' then cmdmode=0;else if ~(index(upper(cmd),'WHM')=0) then ss 'You are already in the BBS Monitor!';else do;changewhere 'BBSMon Shell: 'cmd;bbscommand cmd;end;end;changewhere 'BBS Monitor';return
SENDOLM:;ss ''maxport+addy+5'HL';bbscommand 'OLM';ss 'q1f1'titlebar;ss helpline;do port=minport to maxport;call redrawport;end;call redrawboard;return
PAUSE:;arg secs;a=delay(secs*1);return
CLEANUP:;setobject mon;putuser 1101746;setobject more;putuser 1100454;return;SYNTAX: ; ERROR: ; IOERR: ; er=rc' ('errortext(rc)') in line 'sigl;getuser 1311992 ; a=result ; getuser 1311960 ; b=result ; c='"'a||b'"';er='Error Code 'er' of 'c ; transmit er ; logentry er ; bufferflush;call cleanup;exit
CHECKPANIC:;getcarrier ; if result="TRUE" then return;bufferflush;call cleanup;exit;return